package com.cw.jeeyt.service.intf.process;

import java.util.List;

import com.cw.jeeyt.common.Order;
import com.cw.jeeyt.service.bo.process.ActDeModelBo;
import com.cw.lang.mybatis.dto.PageInfo;

/**
 * 流程定义模型业务接口
 *
 * @author chenw
 * @date 2019-03-10 21:47:04
 */
public interface ActDeModelService {
    /**
     * 查询所有流程定义模型列表信息
     */
    List<ActDeModelBo> queryActDeModelList() throws Exception;

    /**
     * 删除流程定义模型
     *
     * @param actDeModelBo
     */
    void delete(ActDeModelBo actDeModelBo) throws Exception;

    /**
     * 更新流程定义模型
     *
     * @param actDeModelBo
     */
    void update(ActDeModelBo actDeModelBo) throws Exception;

    /**
     * 更新流程定义模型不为空的字段
     *
     * @param actDeModelBo
     */
    void updateSelective(ActDeModelBo actDeModelBo) throws Exception;

    /**
     * 根据主键查询流程定义模型
     *
     * @return
     */
    ActDeModelBo getActDeModelById(String id) throws Exception;

    /**
     * 新增流程定义模型
     *
     * @param actDeModelBo
     * @return
     */
    Integer insert(ActDeModelBo actDeModelBo) throws Exception;

    /**
     * 新增流程定义模型不为空的字段
     *
     * @param actDeModelBo
     * @return
     */
    Integer insertSelective(ActDeModelBo actDeModelBo) throws Exception;

    /**
     * 分页查询流程定义模型
     *
     * @param actDeModelBo
     * @param startNum
     * @param pageSize
     * @return
     * @throws Exception
     */
    PageInfo<ActDeModelBo> queryByPage(ActDeModelBo actDeModelBo, Integer startNum, Integer pageSize, Order order)
    throws Exception;

    /**
     * 流程定义部署
     *
     * @param modelId
     * @param category
     * @return
     */
    String doDeploy(String modelId, String category);

    PageInfo<ActDeModelBo> findPage(PageInfo<ActDeModelBo> actDeModelBoPageInfo, ActDeModelBo deModel);
}
